package com.wanmait.recycle.service;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.wanmait.recycle.pojo.Admin;
import com.wanmait.recycle.pojo.RegCount;
import com.wanmait.recycle.pojo.Userinfo;

public interface UserinfoService extends CommonService<Userinfo> {

	
	//s根据条件获得所有的符合条件的用户
    List<Userinfo> findAllByExample(Userinfo userinfo);
    //根据用户id来获得相应的用户
    Userinfo selectByPrimaryKey(Integer id);
	//根据关键词来查询用户
	List<Userinfo> findAllBySearch(@Param("searchStr")String searchStr,@Param("beginTime")String beginTime,@Param("endTime")String endTime,@Param("enable")String enable);

	//根据id来删除用户
	void deleteById(Integer id);
	//根据ids集合来删除用户
	void deleteByIds(String ids);
	//根据ids集合来还原用户
	void restoreByIds(String ids);
	//根据id来还原用户
	void restoreById(int i);
	
	//查询所有有认证图片的用户
	List<Userinfo> findAllApprovePic();
	
	//根据ids集合通过
	void passByIds(String ids,Admin admin);
	//根据id来通过
	void passById(Integer id,Admin admin);
	//取消通过操作
	void unpassById(Integer id,Admin admin);
	
	
	//通过例子来查找一个用户  返回一个用户
	Userinfo findUserinfoByExample(Userinfo userinfo);
	//保存用户
	void saveUserinfo(Userinfo userinfo);
	//判断用户名是否重复
	boolean isUserinfoByExample(Userinfo userinfo);
	//kkk
	Userinfo findUserinfoByExample2(Userinfo userinfo);
	
	
	//通过id寻找用户具体信息 3.4 ad
	Userinfo findAllById(Integer id);
	
	//通过id更改用户验证邮箱 3.4 ad
	void updateMailById(Integer id, String mailBox);
	//通过id更改用户电话 3.4 ad
	void updatePhoneById(Integer id,String phone);
	//通过id更改用户头像 3.4 ad
	void updateHeadNameById(Integer id, String headName);
	//通过id更改用户公司信息 3.4 ad
	void updateCompanyById(Userinfo userinfo);
	//通过id更改用户密码 3.4 ad
	void updatePasswordById(Integer id, String password);
	//根据用户name判断是否有该用户
	Userinfo isHaveUser(String name, String mother);
	//通过name来更改用户的密码
	void updatePasswordByName(String name, String newPass);
	//通过ids来查找多个用户
	List<Userinfo> findMore(String ids);
	List<RegCount> selectUserCount();
	/*用户每次登录，更新最后一次登录时间，记录最后一次登录ip,登录次数加1 ZQ*/
	void updateIp(Userinfo userinfo);
	
	/*发布文章数量、贡献、提问、回答、收藏数量 ZQ*/
	void updateCount(Userinfo userinfo);
	
}
